﻿using System;
using System.Collections.Generic;
using System.Text;

namespace MTG.DTO.GameCollections
{
    public interface IGameCollection
    {
        /// <summary>
        /// This is a List that holds all the objects associated with this IGameCollection container
        /// </summary>
        IList<ICard> List
        {
            get;
            set;
        }

        /// <summary>
        /// Add an object to the current List of objects
        /// </summary>
        void Add(ICard card);

        /// <summary>
        /// Remove an object from the current List of objects, based on a parameter of card
        /// </summary>
        void Remove(ICard card);

        /// <summary>
        /// Remove an object from the current List of objects, based on the index in the List
        /// </summary>
        void Remove(int index);

        /// <summary>
        /// Remove an object from the current List of objects, based a string value parameter
        /// </summary>
        void Remove(string parameter);

        /// <summary>
        /// Return a random card from the current List
        /// </summary>
        ICard ReturnRandom();

        /// <summary>
        /// Clear the current List
        /// </summary>
        void Clear();
    }
}